package com.example.ruomi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 存储系统中所有歌曲的信息
 * @TableName songs
 */
@TableName(value ="songs")
@Data
public class Songs {
    /**
     * 歌曲ID
     */
    @TableId(value = "song_id", type = IdType.AUTO)
    private Integer songId;

    /**
     * 歌曲名称
     */
    @TableField(value = "title")
    private String title;

    /**
     * 歌曲时长
     */
    @TableField(value = "duration")
    private Date duration;

    /**
     * 歌曲文件URL
     */
    @TableField(value = "file_url")
    private String fileUrl;

    /**
     * 歌曲封面图片URL
     */
    @TableField(value = "cover_image_url")
    private String coverImageUrl;

    /**
     * 关联的专辑ID（可选）
     */
    @TableField(value = "album_id")
    private Integer albumId;

    /**
     * 关联的艺术家ID
     */
    @TableField(value = "artist_id")
    private Integer artistId;

    /**
     * 关联的类型ID（可选）
     */
    @TableField(value = "genre_id")
    private Integer genreId;

    /**
     * 发行日期
     */
    @TableField(value = "release_date")
    private Date releaseDate;

    /**
     * 歌词（可选）
     */
    @TableField(value = "lyrics")
    private String lyrics;

    /**
     * 创建时间，默认当前时间
     */
    @TableField(value = "created_at")
    private Date createdAt;

    /**
     * 更新时间，默认当前时间并自动更新
     */
    @TableField(value = "updated_at")
    private Date updatedAt;
}